﻿// ***********************************************************************
// Assembly         : INNOVACALL.Framework.Common
// Author           : LJO+01 (Laurent Jordi)
// Created          : 06-05-2013
// Last Modified By : LJO+01 (Laurent Jordi)
// Last Modified On : 06-05-2013
// ***********************************************************************
// <copyright file="CustomAttr_StringLength.cs" company="Copyright © Innovacall 2011">
//     Copyright (c) Copyright © Innovacall 2011. All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using System;
using System.ComponentModel.DataAnnotations;
using System.Web;

namespace INNOVACALL.Framework.Common.MVCHelpers.DataAnnotations
{
    /// <summary>
    /// Class CustomAttr_StringLength
    /// </summary>
    public class CustomAttr_StringLength : StringLengthAttribute
    {

        /// <summary>
        /// Initialise une nouvelle instance de la classe <see cref="T:System.ComponentModel.DataAnnotations.StringLengthAttribute" /> en utilisant une longueur maximale spécifiée.
        /// </summary>
        /// <param name="maximumLength">Longueur maximale d'une chaîne.</param>
        public CustomAttr_StringLength(int maximumLength) : base(maximumLength) {
        }

        /// <summary>
        /// Message d'erreur personnalisé, passer une chaine séparée par des ;
        /// </summary>
        /// <param name="name">[0] ResourceType
        /// [1] ResourceName
        /// [2] CustomParam</param>
        /// <returns>Message d'erreur mis en forme.</returns>
        public override string FormatErrorMessage(string name)
        {
            string[] sParams = name.Split(';');
            string sResourceType = sParams[0];
            string sResourceName = sParams[1];
            string toReturn = string.Format((String)HttpContext.GetGlobalResourceObject(base.ErrorMessageResourceType.Name, base.ErrorMessageResourceName),base.MaximumLength);
            return toReturn;
        }
    }
}
